本篇文章圖片已經毀損,請參考同步發布的原文:https://dog0416.blogspot.com/2018/01/databasesql-server-sql-server-2016_24.html
這篇我們將簡單介紹透過 OPENJSON 函式將 json 內容轉換成資料欄位方式呈現。首先我們先建立以下字串內容,並透過OPENJSON印出結果:
DECLARE @jsonInfo NVARCHAR(MAX);
SET @jsonInfo = N'{
"Id":1,
"Name":"Duran",
"Salary":1000,
"Role":[
"developer",
"QA"
]
}'
SELECT *
FROM OPENJSON(@jsonInfo)
您能看見OPENJSON 將 key-value 分離出來,依據不同資料型態進行分類(文字1、數字2...依此類推)。揪下來,我們透過 with 語法,將資料轉換成資料表格式呈現。其中若不想進行轉換,可以透過AS JSON直接儲存JSON資料,但記得其格式一定要為 nvarchar(MAX)。
SELECT *
FROM OPENJSON(@jsonInfo)
WITH (
Id INT '$.Id',
Name nvarchar(20) '$.Name',
Salary INT '$.Salary',
Role nvarchar(MAX) AS JSON
)
https://docs.microsoft.com/zh-tw/sql/t-sql/functions/openjson-transact-sql